﻿#include <stdio.h>
#include <stdint.h>

#define MAC_ADDRESS_LENGTH 6

// 定义以太网帧头部结构体
struct ethernet_frame_header {
    uint8_t destination[MAC_ADDRESS_LENGTH]; // 目标 MAC 地址
    uint8_t source[MAC_ADDRESS_LENGTH];      // 源 MAC 地址
    uint16_t type;                           // 类型/长度字段
};

int main() {
    struct ethernet_frame_header frame;

    // 设置示例 MAC 地址
    uint8_t source_mac[MAC_ADDRESS_LENGTH] = { 0x00, 0x50, 0x56, 0xC0, 0x00, 0x01 };
    uint8_t destination_mac[MAC_ADDRESS_LENGTH] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };  // 广播地址

    // 赋值
    for (int i = 0; i < MAC_ADDRESS_LENGTH; i++) {
        frame.source[i] = source_mac[i];
        frame.destination[i] = destination_mac[i];
    }
    frame.type = 0x0800;  // IPv4 类型

    // 打印结果
    printf("以太网帧头部已创建。\n");
    return 0;
}
